/**
 * 客户端应用初始化函数
 * 该文件被修改为可以被主应用导入的形式
 */

import './assets/styles/main.css'
import './style.css'
import './assets/styles/dark-mode.css'
import './assets/styles/card-styles.css'
import './assets/styles/element-override.css'
import ElementPlus from 'element-plus'
import 'element-plus/dist/index.css'
import * as ElementPlusIconsVue from '@element-plus/icons-vue'
// 预先导入可能在条件中使用的模块
import { createApp } from 'vue'
import App from './views/chat.vue'

// 导出客户端初始化函数
export function initClientApp(app) {
  // 注册Element Plus和图标
  app.use(ElementPlus, { size: 'default', zIndex: 3000 })
  for (const [key, component] of Object.entries(ElementPlusIconsVue)) {
    if (!app.component(key)) {
      app.component(key, component)
    }
  }

  // 客户端专用样式通过路由动态加载，不在这里导入
  console.log('客户端应用已初始化')

  return app
}

// 如果是直接运行这个文件（而不是作为模块导入），则创建独立应用
// 使用立即执行函数而不是动态导入
;(function () {
  if (import.meta.env && import.meta.env.MODE === 'client-standalone') {
    const app = createApp(App)
    initClientApp(app)
    app.mount('#app')
  }
})()
